home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS in a Box 7
/
BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso
/
Files
/
Prog
/
Q-R
/
RR⁄Tabby Source Code.cpt
/
SunDial 2.1.source
< prev
next >
Wrap
Text File
|
1990-05-25
|
33KB
|
1,102 lines
' Code by: Mike Lininger
' 385 Bowling Green Place
' Gahanna, Ohio 43230
' (614) 471-6209 (BBS)
5-25-90
I am making most of my code available to anyone interested in developing
their own Second Sight/Tabby utilities. This source is not designed to be
compiled and run. It is missing key functions and pieces of code that are
Copyright me and others, that are not to be released at this time.
This code is for example purposes only. It illustrates various ways of reading
writing and process data from a variety of SS/Tabby files. It illustrates
the use of Block Reads and Indexes amoung other things.
If you use any portion of this code you must abide by two rules, or you
void the agreement that I am making with you and are subject what the law
dictates.
They are simple.
1. If you us any of this code you must give Michael Lininger and Lininger
Technology credit in both the program and the documentation.
2. It is agreed I am to receive a free copy of the program whether it is
free, sharware or commercial.
Now you must read on a little further and we will be done.
A little history on why I choose ZBasic as the root for my utilities.
I use to be one of those people that would smirk every time some mentioned
they were using BASIC (until 3 years ago I and others had ever right to
smirk) and would say how nice. But thought yeh! Real programmers only use
C or Assembler.
Then came along Microsofts QuickBasic for the IBM. This baby was hot
it gave you all features of C and Pascal, plus core logic of Assembler,
all packaged into a neat super easy to learn and use package. This cut out
months of development work plus the finial applications were a hell of a lot
better looking, cause you could do so much in a short period of time.
This set the tide for a new generation of Basic's. Zedcor introduced ZBasic
for the mac, which gave complete control over the toolbox plus it compiled
into nice neat assembly and was fast.
ZBasic I have found to be extremely powerful and fast, in most cases it
matches or out performs the best C compilers out there. Now when someone
says heh I finished this great C project that I have been working on for 6
months, I now smirk and say how nice. But think yeh! I could have done
the same thing in 1/4 the time and saved you 300,000.00 and ended up with
a lot cleaner and more professional looking product all at the cost of an
extra 14k of file size.
The only draw back to ZBasic is it lack of Data structures, but this is
made up for the use of Indexes. C programmer salivate all over the place
at the mention of theses babies. They give you performance you never dreamed
of. Now of we could just get Zedcor to give us a dozen more, WOW.
Moral of the story - DO NOT EVER underestimate the POWER of Compiled Basic.
Have at it. I hope a lot of people will use this as a jumping off point
and dive into creating a flood of new SS/Tabby utilities.
I can be reached on the networks if you have questions.
614-471-6209 9600 baud
614-471-5733 2400 baud
M.Lininger Genie
Mike Lininger FidoNet (Tabby, RRH, MANSION echoes)
Mike Lininger 1:226/200
Mike Lininger via cmhGate - Net 226 fido<=>uucp gateway Col, OH
UUCP: ...!ous-cis!n8emr!cmhgate!200.2!Mike.Lininger
INET: Mike.Lininger@p2.f200.n226.z1.FIDONET.ORG
' Code is in ZBasic 5.0
' Settings 8,2,4,5,50,mklt,TEXT,LONG,Space Req. after Keywords
' MKLs - Creator
' TSun - Type
' SunDial 2.1 Last Modified 7-23-89
' Resources STR's 1770-1771
' To Prevent your application from say "You will not be able to print"
' if it does not find a Print Driver in your system do the following
' on the finial campiled application. DO NOT DO IT ON ZBASIC ITSELF.
' Use FEDIT do a Hex search for 50EDFD3C and change 50ED to FD3C.
' Sets up application. Turns off Startup Window, Sets Default Mouse
WINDOW OFF
COORDINATE WINDOW
DEF MOUSE=-1
WIDTH -2
FLUSHEVENTS
DIM T%,L%,B%,R%,MY%,MX% ' Required for Toolbox calls
DIM 80 Tabby$(100)
DIM a$(100)
Field%=1:ERROR=0:Cur%=128
RRHost$="Red Ryder Host"
' convert string resource to a string, handle must be passed to this function
LONG FN ReturnString$(SHndl&)
FByte%=PEEK(PEEK LONG(SHndl&))
String$=""
FOR I%=1 TO FByte%
String$=String$+CHR$(PEEK(PEEK LONG(SHndl&)+I%))
NEXT I%
END FN = String$
WINDOW 1,"Aurora Borealis BBS - 614-471-6209",(12,75)-(500,198),17
GOSUB "Cursor_Spin"
GOSUB "Build_Window"
GOSUB "Cursor_Spin"
ScreenLine$="Loading Resources .....
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
GOSUB "Get_Resource_Values"
GOSUB "Cursor_Spin"
' Checks to see if mouse key is down, if so then goto configure menu
MOUSE ON
DEF MOUSE = 0
Hold%=MOUSE(3)
LONG IF Hold% <> 0
GOSUB "Cursor_Spin"
DEF MOUSE = -1
WINDOW CLOSE #1
GOSUB "Configure Menu"
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
CURSOR 0
END
END IF
MOUSE OFF
DEF MOUSE = -1
IF LEN(BBSFolder$)<=1 THEN BBSFolder$=""
NextLaunch$=BBSFolder$+"Launch.Next"
TabbyNet$=BBSFolder$+"TabbyNet"
IF RRHost$="" THEN RRHost$="Red Ryder Host"
RRHost$=BBSFolder$+RRHost$
ConfigFile$=BBSFolder$+"Config"
NextEvent$=BBSFolder$+"Next Event
GOSUB "Cursor_Spin"
ScreenLine$="Checking "+ConfigFile$+"/"+NextEvent$
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
GOSUB "Check_Valid_SystemFiles"
GOSUB "Cursor_Spin"
LONG IF FileErr4%=255
ScreenLine$="File Not Found - "+ConfigFile$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 01>> *"+ConfigFile$+"* Does not Exist at end of Indicated Path! or 1.4 version! or Damaged!"
GOSUB "Error Log"
GOTO "Update_Skip"
END IF
LONG IF FileErr5%=255
ScreenLine$="File Not Found - "+NextEvent$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 02>> *"+NextEvent$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
GOTO "Update_Skip"
END IF
"Set_New_Time"
GOSUB "Cursor_Spin"
ScreenLine$="* Calculating New Launch Time *"
GOSUB "Screen_Log_Display"
Address%=VAL("&H20C")
Seconds1904&=PEEK LONG(Address%):TDHold$=TIME$
GOSUB "Cursor_Spin"
LONG IF NextEventError%=0
Hr%=VAL(LEFT$(TDHold$,2))
Mn%=VAL(MID$(TDHold$,4,2))
LONG IF TabbyHour% < Hr%
LONG IF TabbyMinute% < Mn%
a%=((24-Hr%)+TabbyHour%)-1
XELSE
a%=(24-Hr%)+TabbyHour%
END IF
GOSUB "Cursor_Spin"
XELSE
LONG IF TabbyMinute% < Mn%
a%=(TabbyHour%-Hr%)-1
XELSE
a%=TabbyHour%-Hr%
END IF
GOSUB "Cursor_Spin"
END IF
LONG IF TabbyMinute% < Mn%
b%=(60-Mn%)+TabbyMinute%
XELSE
b%=TabbyMinute%-Mn%
END IF
GOSUB "Cursor_Spin"
NewSeconds&=a%*3600
NewSeconds&=NewSeconds&+(b%*60)
NewLaunchTime&=Seconds1904&+NewSeconds&
CALL IUTIMESTRING (NewLaunchTime&,1,RTime$)
CALL IUDATESTRING (NewLaunchTime&,1,RDate$)
l%=LEN(RTime$)
LONG IF l% >= 11
Sc%=VAL(MID$(RTime$,7,2))
XELSE
Sc%=VAL(MID$(RTime$,6,2))
END IF
NewLaunchTime&=NewLaunchTime&-Sc%
GOSUB "Cursor_Spin"
CalErr%=0
ON ERROR GOSUB "ConfigFile_Error"
IF CalErr%=255 THEN GOTO "Update_Skip"
OPEN "R",1,ConfigFile$,348
RECORD #1,0,308
WRITE #1,NewLaunchTime&
CLOSE #1
ON ERROR RETURN
GOSUB "Cursor_Spin"
ScreenLine$="* New Launch Time is - "+RTime$+" *"
GOSUB "Screen_Log_Display"
END IF
"Update_Skip"
GOSUB "Cursor_Spin"
GOSUB "Tabby_Launch"
ErrLine$ = "<<Error 00>> Everything Failed to Launch, Dropping to Finder "
GOSUB "Error Log"
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
CURSOR 0
END
"ConfigFile_Error"
GOSUB "Cursor_Spin"
CalErr%=255
ErrLine$ = "<<Error"+STR$(ERROR)+">> *"+ConfigFile$+"* Problems with this file! (Read/Write)! "
GOSUB "Error Log"
ERROR=0
RETURN
"Build_Window"
GOSUB "Cursor_Spin"
CALL PENNORMAL
LONG IF WINDOW(0)=1
T=40:L=14:B=80:R=480:PEN 1,1,1,8
CALL PAINTRECT(T)
T=36:L=11:B=74:R=476:PEN ,,,,19
CALL PAINTRECT(T)
PEN ,,,,0
CALL FRAMERECT(T)
T=69:L=345:B=114:R=474
CALL PAINTROUNDRECT(T,16,16)
T=66:L=341:B=110:R=471:PEN ,,,,19
CALL PAINTROUNDRECT(T,16,16)
PEN ,,,,0
CALL FRAMEROUNDRECT(T,16,16)
TEXT 0,12,0,0:T=72:L=342:B=104:R=467:TEMP$="Written By"+CHR$(13)+"Michael Lininger"
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T, 1)
T=17:L=20:B=43:R=136
CALL PAINTROUNDRECT(T,16,16)
T=13:L=17:B=39:R=133:PEN ,,,,19
CALL PAINTROUNDRECT(T,16,16)
PEN ,,,,0
CALL FRAMEROUNDRECT(T,16,16)
T=18:L=30:B=34:R=119:TEMP$="Sundial 2.1"
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T, 1)
END IF
CALL PENNORMAL
GOSUB "Cursor_Spin"
RETURN
"Get_Resource_Values"
' This module Gets default values from STR resources
' 1770 = BBS Application Name
' 1771 = Pathname To BBS Folder
' Find out what this application is named
GOSUB "Cursor_Spin"
CurApName=&H910
CurApName$=""
GOSUB "Cursor_Spin"
FOR I%=1 TO PEEK(CurApName)
CurApName$=CurApName$+CHR$(PEEK(CurApName+I%))
NEXT I%
rscs%=0:' ResFile is Closed
Refnum%=FN OPENRESFILE(CurApName$)
Errnum%=FN RESERROR
LONG IF Errnum% <> 0
ScreenLine$="Resource Problem with "+CurApName$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error RS>> *"+CurApName$+"* has a resource fork problem, Can't Open, Find STRs "
GOSUB "Error Log"
GOSUB "Tabby_Launch"
ErrLine$ = " *RS* That is it folks, I am confuzzzzzed dropping to Finder *** "
GOSUB "Error Log"
ScreenLine$="***** Dropping to Finder *****"
GOSUB "Screen_Log_Display"
FOR j% = t TO 1000
GOSUB "Cursor_Spin"
NEXT j%
CURSOR 0
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
END
END IF
rscs%=1:' ResFile is Open
FOR ResourceCount%=1770 TO 1771
GOSUB "Cursor_Spin"
StrHnd&=FN GETRESOURCE(CVI("STR "),ResourceCount%)
LONG IF StrHnd&=0
' Setting up string resource to save default strs
IF ResourceCount% = 1770 THEN Str$="Red Ryder Host":RRHost$=Str$
IF ResourceCount% = 1771 THEN Str$=":":BBSFolder$=Str$
StrHnd&=FN NEWSTRING(Str$)
CALL ADDRESOURCE (StrHnd&,CVI("STR "),ResourceCount%,"")
XELSE
StrHnd&=FN GETSTRING(ResourceCount%)
END IF
' Convert STRs into useful limit values and pathnames
Default$=FN ReturnString$(StrHnd&)
IF ResourceCount% = 1770 THEN RRHost$=Default$
IF ResourceCount% = 1771 THEN BBSFolder$=Default$
NEXT ResourceCount%
GOSUB "Cursor_Spin"
RETURN
"Tabby_Launch"
GOSUB "Cursor_Spin"
EventCount%=0:ERROR=0
ScreenLine$="Checking for Launch.Next File"
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
OPEN "R",1,NextLaunch$
Length&=LOF(1,1)
CLOSE #1
GOSUB "Cursor_Spin"
LONG IF Length&=0
ScreenLine$="File Not Found "+NextLaunch$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 03>> *"+NextLaunch$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
KILL NextLaunch$
GOTO "Launch_Sequence_Start"
END IF
GOSUB "Cursor_Spin"
ScreenLine$="Loading Event Chain"
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
DEF OPEN "TEXTQED1"
OPEN "I",1,NextLaunch$
WHILE NOT EOF(1)
GOSUB "Cursor_Spin"
INPUT #1,Tabby$(EventCount%)
EventCount%=EventCount%+1
WEND
CLOSE #1
GOSUB "Cursor_Spin"
EventCount%=EventCount%-1
LONG IF EventCount% < 1
GOSUB "Cursor_Spin"
ScreenLine$="Last Event Deleting Launch.Next "
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
KILL NextLaunch$
XELSE
ScreenLine$="Updating Launch.Next File "
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
DEF OPEN "TEXTQED1"
OPEN "O",1,NextLaunch$
FOR Count%= 1 TO EventCount%
GOSUB "Cursor_Spin"
PRINT #1,Tabby$(Count%);
GOSUB "Cursor_Spin"
LONG IF Tabby$(Count%+1) = ""
PRINT #1,CHR$(13);
XELSE
PRINT #1,",";
END IF
NEXT Count%
CLOSE #1
END IF
"Launch_Sequence_Start"
LaunchFile$=BBSFolder$+Tabby$(0)
IF UCASE$(Tabby$(0))="BBS" THEN LaunchFile$=RRHost$
GOSUB "Check_Valid_Filenames"
ON ERROR GOSUB "Tabby_Launch_Error"
LONG IF Tabby$(0) <> ""
GOSUB "Cursor_Spin"
ScreenLine$="Launching - "+LaunchFile$
GOSUB "Screen_Log_Display"
CURSOR 0
LONG IF FileErr1%=255
ScreenLine$="File Not Found - "+LaunchFile$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 04>> *"+LaunchFile$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " "+"Attempt is being Made to Run *"+RRHost$+"* "
GOSUB "Error Log"
ScreenLine$="Launching BBS - "+RRHost$
GOSUB "Screen_Log_Display"
LONG IF FileErr2%=0
ScreenLine$="BBS Not Found - "+RRHost$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 05>> *"+RRHost$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " "+"Attempt is being Made to Run *"+TabbyNet$+"* "
GOSUB "Error Log"
ScreenLine$="Launching TabbyNet - "+TabbyNet$
GOSUB "Screen_Log_Display"
LONG IF FileErr3%=255
ScreenLine$="TabbyNet Not Found - "+TabbyNet$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 06>> *"+TabbyNet$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " *** That is it folks, I am confuzzzzzed dropping to Finder *** "
GOSUB "Error Log"
ScreenLine$="***** Dropping to Finder *****"
GOSUB "Screen_Log_Display"
FOR j%=1 TO 1000
GOSUB "Cursor_Spin"
NEXT j%
CURSOR 0
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
END
XELSE
RUN TabbyNet$
END
END IF
XELSE
RUN RRHost$
END
END IF
XELSE
RUN LaunchFile$
END
END IF
XELSE
CURSOR 0
ScreenLine$="Last Event Launching BBS - "+RRHost$
GOSUB "Screen_Log_Display"
LONG IF FileErr2%=255
ScreenLine$="BBS Not Found - "+RRHost$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 07>> *"+RRHost$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " "+"Attempt is being Made to Run *"+TabbyNet$+"* "
GOSUB "Error Log"
ScreenLine$="Launching TabbyNet - "+TabbyNet$
GOSUB "Screen_Log_Display"
LONG IF FileErr3%=255
ScreenLine$="TabbyNet Not Found - "+TabbyNet$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 08>> *"+TabbyNet$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " *** That is it folks, I am dropping to Finder *** "
GOSUB "Error Log"
ScreenLine$="***** Dropping to Finder *****"
GOSUB "Screen_Log_Display"
FOR j%=1 TO 1000
GOSUB "Cursor_Spin"
NEXT j%
CURSOR 0
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
END
XELSE
RUN TabbyNet$
END
END IF
XELSE
RUN RRHost$
END
END IF
END IF
CURSOR 0
ErrLine$ = "<<Error 99>> "+" Really Big ERROR, Sequence Abort, attempting to Recover "
GOSUB "Error Log"
ScreenLine$="Launch Sequence Error, Running "+RRHost$
GOSUB "Screen_Log_Display"
LONG IF FileErr2%=255
ScreenLine$="BBS Not Found - "+RRHost$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 09>> *"+RRHost$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " "+"Attempt is being Made to Run *TabbyNet* "
GOSUB "Error Log"
ScreenLine$="Launching TabbyNet - "+TabbyNet$
GOSUB "Screen_Log_Display"
LONG IF FileErr3%=255
ScreenLine$="TabbyNet Not Found - "+TabbyNet$
GOSUB "Screen_Log_Display"
ErrLine$ = "<<Error 10>> *"+TabbyNet$+"* Does not Exist at end of Indicated Path! "
GOSUB "Error Log"
ErrLine$ = " *** That is it folks, I am confuzzzzzzed @?$-&!#, dropping to Finder *** "
GOSUB "Error Log"
ScreenLine$="***** Dropping to Finder *****"
GOSUB "Screen_Log_Display"
FOR j%=1 TO 1000
GOSUB "Cursor_Spin"
NEXT j%
CURSOR 0
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
END
XELSE
RUN TabbyNet$
END
END IF
RUN RRHost$
END
END IF
ON ERROR RETURN
RETURN
"Tabby_Launch_Error"
GOSUB "Cursor_Spin"
ScreenLine$="** Dropping to Finder, Launch Error **"
GOSUB "Screen_Log_Display"
GOSUB "Cursor_Spin"
ErrLine$="<<Error"+STR$(ERROR)+">> Launch Error Possible Causes are as Follows: "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<---------- BBS String - "+RRHost$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<-- Launch.Next String - "+NextLaunch$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<----- TabbyNet String - "+TabbyNet$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<--- BBS Folder String - "+BBSFolder$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<---- CallerLog String - "+CallerLog$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<-- One of the Above is Wrong! - Application Not There! - Invalid Pathname! - Can't Run A File! "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<---- Config File String - "+ConfigFile$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="<<---- Next Launch String - "+NextLaunch$+" "
GOSUB "Error Log"
GOSUB "Cursor_Spin"
ErrLine$="* *** Dropping to Finder, I am Confuzzzzzzed @%?$-*$%! "
GOSUB "Error Log"
ERROR = 0
FOR j%=1 TO 1000
GOSUB "Cursor_Spin"
NEXT j%
CURSOR 0
IF rscs%=1 THEN rscs%=0:CALL CLOSERESFILE(Refnum%)
END
RETURN
"Screen_Log_Display"
GOSUB "Cursor_Spin"
TEXT 0,12,0,0
T=47:L=27:B=63:R=455:TEMP$=ScreenLine$
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T%, 1)
DELAY 1500
GOSUB "Cursor_Spin"
RETURN
"Error Log"
GOSUB "Cursor_Spin"
DEF OPEN "TEXTTSun"
OPEN "A",9,"Sundial.Error"
GOSUB "Cursor_Spin"
ErrLine$=ErrLine$+TIME$+" "+DATE$
PRINT #9, ErrLine$
CLOSE #9
GOSUB "Cursor_Spin"
RETURN
"Configure Menu"
WINDOW CLOSE #1
WND=1:GOSUB "Build Window"
Field%=1:CURSOR 0
ON DIALOG GOSUB "Handle Dialog"
DIALOG ON
"Loop"
LONG IF Button%=1
WINDOW CLOSE #1
CURSOR 0
RETURN
END IF
LONG IF Button%=2
GOSUB "Resource Update"
WINDOW CLOSE #1
CURSOR 0
RETURN
END IF
GOTO"Loop"
DIALOG OFF
"Handle Dialog"
Act%=DIALOG(0):Ref%=DIALOG(Act%)
IF Act%=3 THEN WINDOW Ref%:RETURN
LONG IF Act%=1 AND Ref%=1
Button%=2
END IF
LONG IF Act%=1 AND Ref%=2
Button%=1
END IF
LONG IF Act%=6 OR Act%=7
Field%=Field%+1
IF Field%>2 THEN Field%=1
EDIT FIELD #Field%
END IF
LONG IF Act%=2
EDIT FIELD #Ref%
Field%=Ref%
END IF
IF Act%=5 THEN "Format Window"
RETURN
"Frame Button"
CALL INSETRECT(T%,-4,-4): ' Expand T,L,B,R
PEN 3,3,1,8,0: ' Reset pensize
CALL FRAMEROUNDRECT(T%,16,16): ' Now frame it
CALL INSETRECT(T%,4,4):CALL PENNORMAL: ' Restore T,L,B,R
RETURN
"Build Window"
IF WND=1 THEN WINDOW 1,"Configure Menu",(17,58)-(475,200),17
GOSUB "Build Edits"
RETURN
"Format Window"
CALL PENNORMAL
LONG IF WINDOW(0)=1
T%=10:L%=100:B%=34:R%=438:PEN 1,1,1,8
CALL FRAMERECT(T%)
T%=44:L%=101:B%=68:R%=439
CALL FRAMERECT(T%)
T%=83:L%=376:B%=103:R%=435:GOSUB "Frame Button"
TEXT 0,12,0,0:T%=15:L%=25:B%=31:R%=95:TEMP$="BBS Name:"
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T%, 0)
T%=105:L%=54:B%=121:R%=127:TEMP$="Sundial 2.0"
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T%, 0)
TEXT 3,9,:T%=96:L%=182:B%=120:R%=368:TEMP$="Be sure to include a Colon ':'"+CHR$(13)+"at end of your BBSFolder Path."
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T%, 0)
TEXT 0,12,:T%=49:L%=22:B%=65:R%=95:TEMP$="BBS Folder:"
CALL TEXTBOX(VARPTR(TEMP$)+1,LEN(TEMP$),T%, 0)
END IF
TEXT 0,12,0,0
CALL PENNORMAL
RETURN
"Build Edits"
TEXT ,,0,0
LONG IF WINDOW(0)=1
TEXT 0,12,
EDIT FIELD 1,RRHost$,(103,14)-(435,29),3,1
EDIT FIELD 2,BBSFolder$,(104,48)-(436,63),3,1
BUTTON 1 ,1," Save ",(376,83)-(435,103),1
BUTTON 2 ,1,"Cancel",(376,113)-(439,133),1
EDIT FIELD 1
END IF
RETURN
"Resource Update"
GOSUB "Cursor_Spin"
a$=EDIT$(2)
Check$=RIGHT$(a$,1)
LONG IF Check$ <> ":"
BBSFolder$=a$+":"
BEEP
Button%=0
EDIT FIELD #2,BBSFolder$
CURSOR 0
GOTO "Loop"
END IF
RCount%=0
FOR ResourceCount%=1770 TO 1771
GOSUB "Cursor_Spin"
RCount%=RCount%+1
default$ = EDIT$(RCount%)
StrHnd&=FN GETRESOURCE(CVI("STR "),ResourceCount%)
CALL SETSTRING(StrHnd&,default$)
CALL CHANGEDRESOURCE(StrHnd&)
CALL UPDATERESFILE(Refnum%)
NEXT ResourceCount%
GOSUB "Cursor_Spin"
RETURN
"Check_Valid_Filenames"
ErrFile%=0:FileErr1%=0:FileErr2%=0:FileErr3%=0
ON ERROR GOSUB "Filename_Error"
a%=1
OPEN "I",2,LaunchFile$
CLOSE #2
LONG IF FileErr1%=255
ErrLine$="<<Error 11>> *"+LaunchFile$+"* Next Event Not Found - Invalid Name or Path "
GOSUB "Error Log"
ScreenLine$="File Error <NOT FOUND> *"+LaunchFile$+"* "
GOSUB "Screen_Log_Display"
END IF
a%=2
OPEN "I",2,RRHost$
CLOSE #2
LONG IF FileErr2%=255
ErrLine$="<<Error 12>> *"+RRHost$+"* BBS Not Found - Invalid Name or Path "
GOSUB "Error Log"
ScreenLine$="File Error <NOT FOUND> *"+RRHost$+"* "
GOSUB "Screen_Log_Display"
END IF
a%=3
OPEN "I",2,TabbyNet$
CLOSE #2
LONG IF FileErr3%=255
ErrLine$="<<Error 13>> *"+TabbyNet$+"* TabbyNet Not Found - Invalid Name or Path "
GOSUB "Error Log"
ScreenLine$="File Error <NOT FOUND> *"+TabbyNet$+"* "
GOSUB "Screen_Log_Display"
END IF
ON ERROR RETURN
RETURN
"Filename_Error"
IF a%=1 THEN FileErr1%=255
IF a%=2 THEN FileErr2%=255
IF a%=3 THEN FileErr3%=255
ERROR=0
RETURN
"Check_Valid_SystemFiles"
ErrFile%=0:FileErr4%=0:FileErr5%=0:FileErr6%=0
ON ERROR GOSUB "SystemFile_Error"
a%=4
OPEN "R",2,ConfigFile$
Length&=LOF(2,1)
CLOSE #2
LONG IF Length&=0
FileErr4%=255
ErrLine$="<<Error 14>> *"+ConfigFile$+"* Config File Not Found - Invalid Name or Path! or Missing! or 1.4 version! or Damaged! "
GOSUB "Error Log"
ScreenLine$="File Error <NOT FOUND> *"+ConfigFile$+"* "
GOSUB "Screen_Log_Display"
XELSE
FileErr4%=0
ScreenLine$="* Loading Old Launch Time *"
GOSUB "Screen_Log_Display"
OPEN "R",1,ConfigFile$,348
RECORD #1,0
READ #1, Ignore$;57
READ #1, UserLog$;41
READ #1, CallerLog$;41
READ #1, MsgPath$;80
READ #1, Ignore$;89
READ #1, LaunchTimeOld&
READ #1, Ignore$;5
READ #1, SysopName$;31
CLOSE #1
END IF
a%=5
DEF OPEN "TEXTQED1"
OPEN "I",2,NextEvent$
CLOSE #2
LONG IF FileErr5%=255
ErrLine$="<<Error 15>> *"+NextEvent$+"* NextEvent Not Found - Invalid Name or Path or Missing "
GOSUB "Error Log"
ScreenLine$="File Error <NOT FOUND> *"+NextEvent$+"* "
GOSUB "Screen_Log_Display"
XELSE
ScreenLine$="* Loading Old Next Event Time *"
GOSUB "Screen_Log_Display"
OPEN "I",2,NextEvent$
INPUT #2,nEvent$
CLOSE #2
TabbyHour%=VAL(LEFT$(nEvent$,2))
TabbyMinute%=VAL(MID$(nEvent$,3,2))
TabbySecond%=0
END IF
ON ERROR RETURN
RETURN
"SystemFile_Error"
IF a%=4 THEN FileErr4%=255
IF a%=5 THEN FileErr5%=255
ERROR=0
RETURN
"Cursor_Spin"
Cur%=Cur%+1
IF Cur% > 131 THEN Cur%=128
CURSOR Cur%
RETURN
Shareware price for mantissa is $30.00.
The following is a list of features in Mantissa 3.2.
Mantissa is a message base management utility, that helps SS/Tabby
sysops maintain the high volume of echo and local mail that enter
and leave their system.
o Each message section can have a unique:
o Day limit (0-999)
o Section Limit (0-999)
o Archive Limit (0-999k)*
o Archive Location (any valid path)*
o Archives can have unique or the same archive paths*
o nonSection messages are automatically deleted*
o Global Limit Set Option*
o Global Day Limit Set Option*
o Global Archive Limit Set Option*
o Global Archive Location Set Option*
o Control 'set' Buttons for Setting unique Pathnames*
o Multiple ways to move from section to section*
o List Manager Scroll Feature*
o Popup Menus*
o Control Button Forward/Reverse*
o Menu Commands*
o Command Keys*
o On Line Help*
o Full Support of Mac Interface
o Delete by Age Only
o Delete by Limit Only
o Delete by both Age/Limit
o Master Archive On/Off switch*
o Individual Delete/Limit ON/OFF Markers*
o Renumber Messages*
o Renumber Forward from message #1*
o Renumber Reverse from high Message No.*
o Renumber Userlog, High message last read*
o Renumber on Specified Dates Only*
o Use STR's or Text file to save settings.*
o Network and Remote Maintenance supported
o Turn Mantissa Log On/Off
o Select Location and Name of Mantissa Log
o Epistle Generator
o On/Off Epistle Generator
o Max. Message Level Show Clearance
o Select location/name of Epistle Report
o Append/Erase Epistle Report
o Keep .Bak's or discard them*
o Security marker for High Clearance sections*
o Major speed boost over 1.0
o Tabby Compatible or Standalone * - New in 3.x version
In addition to Mantissa 3.2 Registered users are provided with the
updated Export 3.2. Export is a utility that is essential if you run
SS and Tabby. Export 3.2 has been greatly expanded and turbo charged.
Sysop are are given extraordinary control over data exported from their
system. Export 3.2, Probe 3.2, PreStamp 3.2 and Sundial 3.2 are only
being made available to Registered Mantissa users.
Options Available in Export 3.2:
o Point Message Support*
o Process all/new Messages*
o Delete NetMail as Processed
o Notify Sysop of Export*
o Summary of Last 5 Exports*
o Append Origin to Netmail
o D'Bridge Areafix support
o Turn Log on/off
o Select location/name of log
o Append directly to Tabby Log
o Full support of mac interface
o Use Short/Long Reports
o Node Alias for Netmail*
o Use Generic Echoes/Seenby.bbs files*
o Compatible with Origin Master (by Lance Rasmussen)
o On Line Help*
o Major speed boost over 2.52
o Erase/Append to Log* * - New in 3.x version
Utilities from, Lininger Technology:
Free to all Registered Mantissa
Versions
Export 2.54 3.2
Import 2.53 2.53 (update soon)
Sundial 2.1 3.2
PreStamp 2.0 3.2
Mantissa 1.0 (demo) 3.2
Probe .53 3.2
R.Prestamp 2.0 2.0 (update soon)
Sapphire 2.1t 2.1t (update soon)
Epistle II 1.0 1.0
TPort 1.0 1.0
*Pleiades (1) -NA- .25 (Phase 1 only)
Special thanks to,
Tom Fitzsimmons, Mark Bryant, Lance Rasmussen & Ralph Merritt
for their great ideas and for risking life and data while beta testing
the above products.
Mantissa($30.00):
Lininger Technology
Suite 'A'
385 Bowling Green Place
Gahanna, Ohio 43230
614-471-6209 226/200
Applications Freq. from 1:226/200 or 1:350/90
For General Release:
Epistle1.sit - Epistle II 1.0
Export25.sit - Export 2.54
Import25.sit - Import 2.53
Mant10.sit - Mantissa 1.0
PreStp20.sit - Prestamp 2.0
Probe.53.sit - Probe .53
RPreSt20.sit - R.Prestamp (Robot)
Sapph21t.sit - Sapphire 2.1t
Sundil21.sit - Sundial 2.1
TPort10.sit - TabbyPort 1.0
TurboT.sit - TurboPascal launch.next source (original by Pete Johnson)
ZLaunch.sit - ZBasic launch.next source code
No password required to get the above files
For Restistered Mantissa Users:
Export32.sit <password> - Export 3.21
Mant32.sit <password> - Mantissa 3.2
PreStp32.sit <password> - PreStamp 3.2
Probe32.sit <password> - Proble 3.2
Sundil32.sit <Password> - Sundial 3.2
<Password> is the first 4 uppercase characters of the filename
mentioned in your Mantissa registration cover letter
that accompanied your master disk.